Systems and methods for generating customized advertisements

ABSTRACT

Systems and methods for generating customized electronic advertisements are disclosed. A request for an advertisement is received. Viewer data is received and analyzed to determine current viewer features, characteristics, attributes, and/or interest(s). Product data can be extracted from publicly accessible electronic data generated by an ad source organization. The product data can be compared to the current viewer interest(s) to determine which product of the plurality of products most closely aligns with the current interests of the viewer to select a product to be advertised. A customized advertisement can be generated specifically for the viewer using at least a portion of the extracted product data for the product to be advertised.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/061,607, titled SYSTEMS AND METHODS FOR GENERATING CUSTOMIZEDADVERTISEMENTS, filed Oct. 23 2013, which claims the benefit under 35U.S.C. §119(e) of U.S. Provisional Patent Application No. 61/858,510,titled SYSTEMS AND METHODS FOR AUTOMATIC GENERATION AND CUSTOMIZATION OFINTERNET BASED ADVERTISEMENTS, filed Jul. 25, 2013, of U.S. ProvisionalPatent Application No. 61/778,032, titled SYSTEMS AND METHODS FORAUTOMATIC GENERATION AND CUSTOMIZATION OF INTERNET BASED ADVERTISEMENTS,filed Mar. 12, 2013, and of U.S. Provisional Patent Application No.61/717,284, titled SYSTEM AND METHOD FOR AUTOMATIC GENERATION ANDCUSTOMIZATION OF INTERNET BASED ADVERTISEMENTS, filed Oct. 23, 2012,each of which is hereby incorporated by reference herein in itsentirety.

TECHNICAL FIELD

The present disclosure relates generally to generation and customizationof advertisements, including but not limited to electronicadvertisements such as Internet advertisements that may be presented ona website.

BACKGROUND

The Internet and World Wide Web have provided a new platform forindustries to market their products and services (hereafter referred tocollectively as “products”). These products may be marketed throughvarious types of internet based advertisements (hereafter referred to as“ads”), which may include text based ads, banner ads, and audio andvideo ads. These products may also be marketed through other types ofelectronic advertisements, including advertisements to mobile computingdevices (e.g., push ads via mobile aps), to electronic signs, and anyelectronic device coupled to a network. Typically an ad is general innature since little is known about the viewer of the ad. Internet searchengine websites often provide ads based on search terms (also referredto as keywords), which may allow some level of customization.

Presently available systems and methods may deliver ads based onretargeting, which is limited to presenting a viewer with an ad based ona website or product that the viewer previously viewed. Theseretargeting ads are generally generic, or static in nature (or limitedto a finite set of content), and are not unique to an individual person,such that each person that views that same website or product may seethe same ad. In other words, presently available systems provide genericads, and merely aim to better target these generic ads. Presentlyavailable systems and methods simply do not produce ads that areuniquely generated and/or customized for a given viewer.

Presently available systems may also be limited to providing ads from alimited set of ad content that is disconnected or independent from aninventory (e.g., actual products offered for sale) of an ad sourceorganization (e.g., business, company) that is trying to advertise(e.g., market its product, services, event, etc.). For example, an adsource organization may develop ad content and that ad content may, atthe time created, be relevant to a product the ad source organizationwants to sell. However, the ad source organization may run out of thatproduct, or determine that the price needs to be adjusted. Presentlyavailable systems and methods may also be incapable of automaticallygenerating ad content based on the change in inventory or a change toinformation about a product. In other words, the burden of creating,updating, and transferring the digital ads to the various presentlyavailable internet-based marketing companies is solely on theorganization trying to advertise its products. Presently availablesystems simply cannot generate ads that are uniquely generated for agiven viewer and customized based on present or even updated informationabout the product being advertised.

Moreover, presently available systems and methods fail to consider moreparticular aspects (e.g., location, short term pricing specials, methodof sale, etc.) of the ad source organization trying to advertise. Forexample, several organizations may offer the same or similar productsbut the ad source organization may offer financing and presentlyavailable systems and methods may fail to consider this aspect of the adsource organization.

SUMMARY

The present disclosure provides systems and methods for automaticallygenerating customized ads for a particular viewer, based on viewer data,ad source organization data, and/or website data.

BRIEF DESCRIPTION OF DRAWINGS

Additional aspects and advantages will be apparent from the followingdetailed description of preferred embodiments, which proceeds withreference to the accompany drawings, in which:

FIG. 1 is a system for automatically generating customized ads,according to one embodiment.

FIG. 2 is a relational diagram of a system for automatically generatingcustomized ads, according to one embodiment.

FIGS. 3A, 3B, and 3C provide a high-level illustration of a flow of dataduring a process for automatically generating customized ads, accordingto one embodiment.

FIG. 4 is a flowchart of a process for automatically generatingcustomized ads, according to one embodiment.

FIG. 5 is an analyzer of a system for automatically generatingcustomized ads, according to one embodiment.

FIG. 6 is a flowchart of a process of identifying a matching product,according to one embodiment.

FIG. 7 provides a diagrammatic representation of identifying matchingfeature vectors, according to one embodiment.

FIG. 8 is a flowchart for a process of generating a customized ad,according to one embodiment.

FIG. 9 is a flowchart for a process of an assessor, according to oneembodiment.

FIG. 10 is an interface for an ad source organization to managepreferences of an ad campaign, according to one embodiment.

FIG. 11 is an interface for an ad source organization to previewadvertisements, according to one embodiment.

FIG. 12 is an interface for an ad source organization to modify an adcampaign.

DETAILED DESCRIPTION

The present disclosure will be better understood from the detaileddescription provided below and from the drawings of various embodiments,methods, and examples herein. These specifics, however, are provided forexplanatory purposes that help the various embodiments of the disclosureto be better understood. The invention should therefore not be limitedby the described embodiments, methods, and examples, but by allembodiments and methods within the scope and spirit of the invention asclaimed.

The present disclosure provides systems and methods for automaticallygenerating customized ads for a particular viewer, based on viewer data,ad source organization data, and/or website data. The systems andmethods of the present disclosure may generate ads that are createdspecifically for a given viewer, for a location the ad will bedisplayed, and/or for marketing aspects of the ad source organizationand/or product that align with present interests of the viewer.

The term “viewer” as used herein includes, and is not limited to, theperson or persons using an electronic device to access the Internet andthat will see or be presented (or otherwise be subject to) the ad,whether though visual, audio, or other means. The term “viewer data” asused herein includes, and is not limited to, browsing history includingthe time history such as the time spent on a given website, searchqueries, ad interactions (including a lack of interaction, e.g., notclicking on an ad), online profiles, and other data generated by theviewer. The term “display website” as used herein includes, and is notlimited to, the website or web source which may include online blogs,videos, and other outlets where the viewer will be presented (orotherwise subject to) an ad whether though visual, audio, or othermeans. The term “display website data” as used herein includes, and isnot limited to, data associated with the display website includingcontent, whether text, image, or video, and other website related datasuch as website structure, color schemes, font types and sizes. The term“website data” as used herein includes, and is not limited to, displaywebsite data and similar data of other websites, including the ad sourceorganization website and third-party websites and may further includedata pertaining to the content of websites. The term “ad sourceorganization” as used herein includes, and is not limited to, abusiness, a company, or other entity or organization trying to market oradvertise products, services, events, etc. The term “ad sourceorganization website” as used herein includes, and is not limited to, awebsite or web source where an ad source organization publishesinformation (e.g., as publicly accessible electronic data) with regardto product(s) that the ad source organization offers (e.g., sells,rents, leases, presents, provides), which may include details such asdescriptions, specifications, pricing information, ratings, etc. Theterm “product” as used herein includes, and is not limited to, aproduct, a service, an event, or any other item that an ad sourceorganization offers and/or markets, such as through advertising. Theterm “ad source organization data” as used herein includes, and is notlimited to, data associated with the ad source organization includingadvertising campaign data, ad source website data (e.g., ad sourceorganization location data, product data), and any other data related tothe organization and its offering.

FIG. 1 is a system 100 for automatically generating customized ads,according to one embodiment. The system 100 may generate customized adsbased on viewer data, ad source organization data, and/or website data.The system 100 may include a bus 102, system memory 104, one or moreprocessors 138, 140, 142, 144 and a network interface 146. The systemmemory 104 may include a plurality of program modules 106. The programmodules 106 may include all or portions of other elements of the system100. The program modules 106 may run multiple operations concurrently orin parallel on the one or more processors 138, 140, 142, 144. The systemmemory 104 may also include other modules 126, such as an imageprocessing module, translation module, or the like, which may beinternal to the system 100 as shown, or which may enable incorporationof external functions.

The system memory may also include stored program data 128. Datagenerated by the system 100, such as by the program modules 106 or othermodules 126, may be stored on the system memory 104, for example, asstored program data 128. The stored program data 128 may include productdata 130, account data 132, viewer data 134, and website data 136. Thedata may be organized in the program data 128 as one or more databases,such as a product database, an account database, a viewer database, anda website database.

The system 100 may also include various elements or components toimplement functionalities of the system, including an extractor 108, aproduct updater 110, an analyzer 112, a match engine 116, a customadvertisement (“ad”) generator 118, a confidence engine 162, one or moreassessors 164, an account manager 120, a data manager 122, and acommunication interface 124. These elements may be embodied, forexample, at least partially in the program modules 106. In otherembodiments, these elements may be embodied or otherwise implemented inhardware of the system 100.

The extractor 108 may be configured to extract information from publiclyaccessible electronic data, including publicly accessible electronicdata generated by an ad source organization. For example, the extractor108 may call (e.g., visit) a website, such as an ad source organizationwebsite, to extract information. As another example, the extractor 108may monitor a rich site summary (RSS) feed or similar live presentationof electronic data and extract information. As still another example,the extractor 108 may monitor a social media website and/or platform(e.g., Facebook®, Twitter®, and the like) to extract information. Theextractor 108 may be configured to automatically extract informationand/or product data, without user intervention. Automation of theextractor 108 extracting information may occur based on a timer, a timeof day, in response to a server request, or any of a number oftechniques for automating extraction to occur without user intervention.

The extracted information may include product data pertaining to aproduct or products being offered by the ad source organization. Asindicated above, a product may be a service. The ad source organizationmay be offering the product(s) in any of various ways, such as offeringfor sale, lease, or rent, presenting (e.g., an event), or otherwiseproviding the product. The product data may include, but is not limitedto, a product description, product specifications (e.g., size, weight,color, model, etc.), product rating(s), pricing of the product, locationof the product, and product images.

In instances where portions or details of product data may not bepresent in publicly accessible electronic data generated by the adsource organization, the extractor 108 may extract such missing portionsor details or additional product data from other publicly accessibleelectronic data, for example, as may be generated by otherorganizations, such as a manufacturer of the product, other vendors ofthe product, etc.

The extractor 108 may also be configured to extract other data relatingto the ad source organization including but not limited to physicalstore locations, hours of operation, financing options, and currentspecials offered by the ad source organization. The extractor 108 mayalso be configured to extract website data of a website of the ad sourceorganization. The website data may include, for example, website colors,font sizes, and layout.

The extracted information may be stored in system memory 104. Theinformation may be stored only temporarily. For example, the extractedinformation may be stored in the program data 128. The extractedinformation may include product data 130 that may be stored in theprogram data 128 and other extracted data relating to the ad sourceorganization that may be stored separately, for example, as account data132.

The product updater 110 may be configured to identify any changes to thepublicly accessible electronic information generated by an ad sourceorganization, and particularly product data, for products offered by anad source organization. Changes to product data may include addition orremoval (deletion) of product information (including adding new productsor removing products), changes to the price of a product, updatedranking information, or any other changes to any product details. Theproduct updater 110 may automatically identify and extract changes ofthe publicly accessible electronic information of the ad sourceorganization, without user intervention. Other changes to the publiclyaccessible electronic information may include discount pricinginformation for one or more products and limited-time promotionalinformation for one or more products.

The analyzer 112 may be configured to analyze (and/or process) varioussources of data that may be used in generating customized ads. The datathat may be analyzed by the analyzer 112 may include, but is not limitedto, ad request data (received with a request for an ad), product data130, account data 132, viewer data 134, and website data 136.

The analyzer 112 may analyze product data 130 extracted by the extractor108 to determine features, characteristics, and/or attributes ofproducts offered by the ad source organization. For example, theanalyzer 112 may determine such product features, characteristics,and/or attributes as product type, pricing, color, location, productrating, product image, size, weight, and the like. If the product is anautomobile, the analyzer may determine such features, characteristics,and/or attributes as body type, make, model, mileage, and the like. Theanalyzer 112 may generate a representation for each product (e.g.,representing features, characteristics, and/or attributes of theproduct), such as a data structure or a mathematical model. For example,the analyzer 112 may generate a product feature vector for each product.

The analyzer 112 may analyze viewer data 134 to determine variousfeatures, characteristics, and/or attributes of the viewer, which mayinclude current viewer interests (or potential current viewerinterests). In analyzing the viewer data and/or generating a viewerfeature vector, the analyzer 112, may consider previous products thatthe viewer did and did not view, search terms, data entered into a form,etc. The analyzer 112 may generate a representation of the viewer (e.g.,representing features, characteristics, and/or attributes of theviewer), such as a data structure or a mathematical model. For example,the analyzer may generate a viewer feature vector to which productfeature vectors may be compared for determining products that may be amatch to the viewer and/or that may be of interest to the viewer.

The analyzer 112 may analyze ad request data to determine adspecifications, such as a dimensions or size (space available) for thead, and acceptable ad formats (e.g., jpg, swf, mp3 and mp4).

The analyzer 112 may analyze website data 136 to determine displaywebsite formatting, fonts, styles, and the like, for use in generating acustomized ad that is compatible with the display website. The analyzer112 may also analyze other website data 136 (e.g., website data ofwebsites previously visited by viewers), for example, to assess viewerinterests.

The analyzer 112 may analyze account data 132 of a given ad sourceorganization for use in determining stipulations and/or preferences forcustomized ads generated for the ad source organization. The analyzer112 may, for example, generate a weighting of various product featuresor generate rules based on the account data. The analyzer 112 isdiscussed in greater detail below with reference to FIG. 5.

The match engine 116 may be configured to determine relevant product(s)for a given viewer, such as the most relevant product(s) of a set ofproducts (e.g., the products offered by one or more ad sourceorganizations). More specifically, the match engine 116 may beconfigured to compare analyzed product data for products of one or moread source organizations against analyzed viewer data for a viewer towhom a custom generated ad would be presented. This comparison may bedone in several ways. In one embodiment, the match engine 116 may employmachine learning techniques, including supervised and unsupervised. Inone embodiment, the match engine 116 may use a deterministic approach,such as comparing product feature vectors to a viewer feature vector ofthe targeted viewer. The comparison of a product feature vector to aviewer feature vector may include quantifying a distance between thesevectors using mathematical norms (e.g., Euclidean norm, Taxicab norm,etc.). Furthermore, weight vectors may be utilized to emphasize afeature or set of features (or characteristics or attributes) of aviewer as derived from analyzed viewer data. The match engine 116 maysearch analyzed product data (e.g., product feature vectors) andidentify which product(s), if any, match (or are most relevant to) agiven viewer. The match engine 116, according to one embodiment, mayutilize or otherwise perform a process of identifying a matchingproduct, such as the process described below with reference to FIG. 6 orthe process described below with reference to, and diagrammaticallyrepresented in, FIG. 7.

The confidence engine 162 may be configured to determine a confidencescore (e.g., a confidence level value) representing a level ofconfidence that a viewer will have interest in an ad. More specifically,the confidence engine 162 may determine an objective measure (e.g., aconfidence score) representing a likelihood of success of an ad and/or alikelihood that the viewer will be interested in a custom generated adfor the matching product (as identified by the match engine 116). Theconfidence engine 162 may determine a confidence score based on severalvariables, including but not limited to, a distance (or closeness orrelative similarity) between the matched product and an ideal (orclosely ideal) product, how well a product matches the features,characteristics, attributes, and/or identified interest(s) of theviewer, and/or the advertisements and/or products for which the viewerhas previously demonstrated interest. The confidence engine 162 mayutilize additional data if available (such as click through dataassociated with previous ads), but this is not required. Morespecifically, the confidence engine 162 does not require training dataor historical data to accurately predict a confidence score becausedetailed knowledge of a matching product is available through extractedproduct data. Computing a confidence score is discussed more fully belowwith reference to FIG. 4.

The custom ad generator 118 may be configured to automatically generatecustom ads. The custom ad generator 118 may generate a custom ad basedon request data for a given request, viewer data and/or current viewerinterest(s), website data, extracted product data, and/or ad sourceorganization data and/or other data. The custom ad generator 118 mayselect or otherwise determine an ad canvas, generate and/or selectcustom content components, and incorporate or add custom contentcomponents to the ad canvas to synthesize a custom ad. The custom adgenerator 118, according to one embodiment, may utilize or otherwiseperform a process of generating a customized ad, such as the processdescribed below with reference to FIG. 8, which may include running theone or more assessors 164 and/or utilizing output of the one or moreassessors 164. The custom ad generator 118 may determine which and howmany assessor outputs (e.g., custom content components) to incorporatein synthesizing a custom ad.

The one or more assessors 164 may each be configured to assess analyzedviewer data (such as a viewer feature vector) and, based on viewer dataand/or current interest(s) of a viewer, provide custom content that iscustomized for the viewer. The custom content may be used by the customad generator 118. The assessors 164, according to one embodiment, maycompute or utilize previously computed results of various mathematicaland statistical measures (e.g., standard deviation, mean, maximum andminimum values, slope, and inflection points) of the viewer data andcompare one or more viewer feature vectors of the viewer with theproduct feature vector for a matched product. This comparison mayinclude comparing individual features such as the price and/or mayinclude comparing several features such as brand names where each brandis represented as one feature. The assessors 164 may then generatecustom content. The custom content may be a form of electronic media,including but not limited to text, image(s), audio, and video. Theassessors 164 may further compute a weighting associated with the customcontent. The weighting may be used by the custom ad generator 118 indetermining which custom content to incorporate into a customized ad. Aprocess of an assessor 164, according to one embodiment, is describedbelow with reference to FIG. 9.

The account manager 120 may be configured to maintain and store accountdetails that may be pertinent to an ad source organization and/or anadvertising campaign of the ad source organization. The account detailsmay include account status, advertisement campaign settings (e.g.,spending or display thresholds), campaign focuses, promotions, and anyother account information.

The data manager 122 may be configured to maintain and store data,including extracted information (e.g., product data), other datarelating to the ad source organization, ad request data, viewer data,website data, product data, and account data. The data manager 122 mayimplement, administer, maintain and/or update stores of data, such asstores of product data 130, account data 132, viewer data 134, andwebsite data 136. In one embodiment, the stored data 130, 132, 134, and136 may be stored in one or more databases.

The communication module 124 may be configured to receive ad requestsand send the associated response. Specifically, the communication module124 may receive a request for an advertisement from a content server(e.g., a display website) or other electronic device, and may transmitback to the requesting device a customized ad generated by the custom adgenerator 118.

As noted above, data generated by the system 100, such as by the programmodules 106, other modules 126, and/or any other elements of the system,may be stored on the system memory 104, such as in the program data 128,which may include product data 130, account data 132, viewer data 134,and website data 136. The program data 128 may be organized into one ormore databases, such as a product database, an account database, aviewer database, and a website database. The program data may be may betemporary, may be sparse representations, may be stored on ram, and/ormay utilize any of a variety of techniques for efficient, rapid storageand access of data.

The system 100 may be connected to a network 147 through a networkinterface 146. The system 100 may then contact one or more servers 150,152, which may host a variety of types of information and a requestdevice 148. The request device 148 may also be a content server (e.g., awebsite, ad exchange, ad network) that sends a request for anadvertisement over the network 147 to the system 100 for automaticallygenerating customized ads. In other embodiments, the request device 148may be a client computer, a browser, a mobile computing device, atelevision, or other electronic device. The one or more servers 150,152, may provide a source (e.g., website, RSS feed, social media) ofpublicly accessible electronic data generated by an ad sourceorganization or by third-party organizations.

FIG. 2 is a relational diagram of a system 200 for automaticallygenerating customized ads, according to one embodiment. The system 200may be similar to the system 100 of FIG. 1 and may generate customizedads based on viewer data, ad source organization data, and/or websitedata. The system 200 may include an analyzer 202 and a customized customad generator 204, which may access various types of data, including butnot limited to account data 208, product data 210, viewer data 212,and/or website data 214. The system 200 may also include an extractor206 which may extract and/or update the product data 210 as well asaccess and/or update account data 208. The analyzer 202 and theextractor 206 may operate in parallel (e.g., as concurrent processes) toprovide inputs to the customized ad generator 204 to generate acustomized ad based on the product data 210, account data 208 (and/orother ad source organization data), the viewer data 212, and/or thewebsite data 214.

FIGS. 3A, 3B, and 3C provide a high-level illustration of a flow of thevarious types of data during a process for automatically generatingcustomized ads, according to one embodiment. FIG. 3A illustrates anexample of a display website 310, according to one embodiment, that maypresent listings of cars for sale. The display website 310 may includean advertisement area 312 and a search block 314.

Viewers of the website may be able to search for desired car listingsusing the search block 314. The search block may include one or morefields to enable a viewer to enter search terms to search for products,which may be cars in the case of the illustrated display website 310.For example, the search block 314 may include a keyword field 316 toreceive input providing keywords for the type of product the viewer maybe searching to find. The search block 314 may include a mileage field318 to receive input specifying a desired mileage or range of mileagedesired. The search block 314 may include other fields, such as make,model, year, price, and location (e.g., zip code, miles from).

The display website 310 may present ads in the advertisement area 312,for example as a source of revenue. For example, the display website 310may present ads on a cost per click (cpc) or a cost per impression (cpi)basis and charge an ad source organization accordingly.

A server that serves the display website 310 may obtain ads from avariety of sources. One source of ads may be a system for generatingcustomized ads, such as system 100 as described above with reference toFIG. 1 or system 200 as described above with reference to FIG. 2. Theserver of the display website 310 may send a request for an ad to thesystem 100, as will be described.

When a viewer accesses and views this display website 310 for the veryfirst time, little if anything may be known about the viewer.Accordingly, a generic ad 313 may be displayed in the advertisement area312 of the display website 310. The generic ad may be a default ad. Asinformation is obtained about the viewer, customized ads may be providedby the system for generating customized ads. For example, the viewer ofthe display website 310 in FIG. 3A may enter the word “truck” as akeyword in the keyword field 316 and may specify a mileage of 5,000 to10,000 miles in the mileage field 318. This search query may provideinformation about a current interest of the viewer—e.g., that the vieweris interested in trucks with low mileage in the 5,000 to 10,000 milesrange.

When the viewer of the display website 310 clicks on the search button319 to run the search query, the server of the display website may senda request for a customized ad to the system for generating customizedads, such as the system 100 of FIG. 1 (or the system 200 of FIG. 2). Thesystem 100 is able to analyze viewer data and assess or identify fromthat viewer data that a current interest of the viewer may be truckswith low mileage and use that identified current interest in generatinga customized advertisement, as will be described with reference to FIGS.3B and 3C.

FIG. 3B illustrates an example of an ad source organization website 320,according to one embodiment. The ad source organization website 320 maypresent publicly accessible information generated by an ad sourceorganization. The publicly accessible information may pertain toproducts offered by the ad source organization, which in this case maybe automobile dealer that offers automobiles (e.g., cars and trucks) asproducts. In FIG. 3B, the ad source organization website 320 may providelistings 322 of automobiles offered for sale by the ad sourceorganization. A first listing 322 a for a truck may include an image 324a of the truck, a title of the listing 326 a describing the truck, andspecification information 328 a providing specifications of the truck.The first listing 322 a may include a title 326 a indicating that thefirst listing 322 a is for a truck that is a 2012 Toyota® Tacoma® truck.The specification information 328 a may indicate that the truck hasabout 7,500 miles.

The second listing 322 b may also be for a different truck and mayinclude an image 324 b, a title 326 b, and specification information 328b. Similarly, the third listing 322 c may be for another truck and mayinclude an image 324 c, a title 326 c, and specification information 328c. As can be appreciated, the listings 322 may include many moreelements of information, but the description here is simplified to animage, title, and specification information for sake of clarity.

The system 100 of FIG. 1 (or the system 200 of FIG. 2) may extractinformation from the ad source organization website 320, includingproduct data for the products of the listings 322. The extracted productdata may be used by the system 100 to generate a customized ad, such asin response to a server request. In the illustrated example of FIGS.3A-3C, the system may use the extracted product data to generate acustomized ad for the viewer of the display website 310 in response tothe ad request made or sent as a result of the search query. The system100 may extract product data and determine there are at least threeproducts offered for sale by the ad source organization, namely thethree trucks presented in the listings 322. The analyzer may analyze thereceived viewer data and the extracted product data and determine whichof the products most closely matches an identified current interest ofthe viewer. In the illustrated example of FIGS. 3A-3C, the system 100may determine that the truck of the first listing 322 a may be theclosest match and may use product data associated with that truck togenerate a customized ad.

FIG. 3C illustrates an example of the display website 310 c, accordingto one embodiment, presenting results 350 of the search query of thedisplay website 310 c and also presenting in the advertisement area 312c a customized ad 313 c that we generated and returned in response tothe ad request. The customized ad 313 c includes product data from thead source organization website 320 pertaining to the identified matchingproduct of the ad source organization. Specifically, the customized ad313 c includes the image 324 a and the title 326 a from the listing 322a of the truck on the ad source organization website. The customized ad313 c may further be customized to highlight a feature of interest tothe viewer. In FIG. 3C, the customized ad 313 c may highlight the “lowmileage” of the truck. The customized ad 313 c may further be customizedbased on display website data, such as sizing, fonts, colors, etc.Accordingly, FIGS. 3A-3C illustrate an example of the system 100generating a customized ad based on viewer data, ad source organizationdata, and/or website data.

In another embodiment, the viewer data may be derived from browsinghistory rather than from a search query. For example, a viewer may havebrowsed available listings on the display website and clicked on variouslistings of interest. Several of the viewed listing may have hadsimilarities, such as listing of trucks with mileage between 5,000 and10,000 miles, and/or of a particular color (e.g., red). This viewer dataand optionally website data may be received and analyzed to derivefeatures, characteristics, and/or attributes of the viewer (e.g., thatthe viewer has browsed listings of trucks, with mileage between 5,000and 10,000 miles, and a color red). The system 100 of FIG. 1 may analyzethe viewer data and generate a custom ad for a product matching theanalyzed viewer data and website data derived from the browsing history.The customized ad that is generated may highlight the interest of theviewer, as derived from the viewer data and website data. Accordingly,viewer data may have various forms, as will be explained in more detail.

FIG. 4 is a flowchart of a process 400 for automatically generatingcustomized ads, according to one embodiment. The process 400 maygenerate customized ads based on viewer data, ad source organizationdata, and/or website data. The process 400 may begin by receiving 402 arequest for an ad, for example, from a server or other electronicdevice. The request may include information such as search parameters,viewer data, website data such as a referring uniform resource locator(url), and ad specifications. Optionally, data may be retrieved 404,including product data, viewer data, website data, and account data. Forexample, product data may be extracted from publicly accessibleelectronic data generated by an ad source organization. The process 400may analyze 406 data (whether retrieved 404 by the process 400 orpreviously retrieved and stored) to identify relevant data that may beused in generating customized ads. As described above the data analyzed406 may include but is not limited to ad request data, product data,viewer data, website data, and account data. Analyzing 406 the data mayinclude determining ad specifications, determining display websiteformatting (including structure, fonts, styles, and the like), and/ordetermining ad source organization preferences and/or stipulations oncustomized ads. Analyzing 406 the data may include parsing, filtering,restructuring, and/or otherwise processing viewer data to put it in aform amenable to comparison with product data and parsing, filtering,restructuring, and/or otherwise processing product data to put it in aform amenable to comparison with viewer data. Analyzing viewer data mayalso include utilizing website data (e.g., the viewer data indicates thewebsites the viewer may have visited and the website data may providethe content of those websites, which can be used in deriving features,characteristics, and/or attributes of the viewer). Analyzing 406 mayinclude generating viewer feature vectors and generating product featurevectors. Analyzing 406 data is discussed in greater detail below withreference to FIG. 5.

The process 400 may also include identifying 408 a matching product. Thematching product may be an ideal (or closely ideal) product that alignsor substantially aligns with a current interest of the viewer.Identifying 408 a matching product may include comparing analyzed viewerdata to analyzed product data to identify one or more products within arelative close proximity to an interest a viewer may have. Identifying408 a matching product is described in more detail below with referenceto FIG. 6, and FIG. 7.

As part of or in addition to identifying 408 a matching product, aconfidence score may be computed 410. The confidence score may representa level of confidence that a viewer will have interest in an ad. Morespecifically, the confidence score may be an objective measure of alikelihood of success of an ad and/or a likelihood that the viewer willbe interested in a custom generated ad for a product identified as amatch. The confidence score may be computed as a function of severalvariables, including but not limited to, a distance (or relativesimilarity) between the matched product and an ideal (or closely ideal)product, how well a product meets the identified interest(s) of theviewer, a measure of the importance of each identified interest(s)(e.g., the viewer may be interested in both price and color and themeasure of importance indicate how much the viewer cares about each one,for example relative to each other), and/or the advertisements and/orproducts for which the viewer has previously demonstrated interest.Additional data may be considered, if available, such as click-throughdata associated with previous ads, but consideration of this additionaldata is not required. A confidence score can be accurately computedwithout data from previous ads because detailed knowledge of a matchingproduct is available through extracted product data and because theanalyzed product data can be directly compared to analyzed viewer data.

Traditionally, it is difficult to calculate a confidence measure sincelittle is known about the product being advertised, the advertisement,and the direct relevance of the product (or advertisement) to theviewer. Current methods rely on ad performance data in which they cancompare the browsing history of viewers that have clicked on an ad withthe browsing history of the viewer of interest. Similarly, other methodsinclude comparing the ad performance data of previously shown ads to theviewer of interest to the proposed ad. While these methods can calculatesome probability that the viewer may click on the ad, they are largelybased on comparison methods as discussed. As noted, the presentlydisclosed methods may have detailed knowledge of a features,characteristics, and/or attributes of a product being advertised as wellas of features, characteristics, attributes, and/or interests of theviewer, which allow a confidence score to be computed without the needfor ad performance data. Although the disclosed approach does notrequire ad performance data, if available, it may be used.

In one embodiment, a confidence score may be computed as a function of aviewer feature vector, a product feature vector, a normalized standarddeviation vector of multiple viewer feature vectors for a given viewer,and a normalized mean vector of multiple viewer feature vectors for agiven viewer. For example, a confidence score may be computed using anequation generically stated as the following function:

C=f(v _(i) ,p _(i)σ_(ni),μ_(ni))

where {right arrow over (v)} is the viewer feature vector, {right arrowover (p)} is the product feature vector, {right arrow over (σn)} is thenormalized standard deviation vector of multiple viewer feature vectorsfor a given viewer, and {right arrow over (μn)} is the normalize meanvector of multiple viewer feature vectors for a given viewer. Both thestandard deviation and the mean may be normalized using a set of datawhich may include product feature vector(s) and/or viewer featurevector(s). The following equation may be an example of a function forcomputing a confidence score:

$C = {\sqrt{\sum\limits_{i = 1}^{n}\; \left( {v_{i} - p_{i}} \right)^{2}} + \frac{\sum_{i = 1}^{n}\sigma_{ni}}{\sum_{i = 1}^{n}\mu_{ni}}}$

Referring again to FIG. 4, the process 400 may include a determination412 whether a matching product was identified 408 that has a sufficientcomputed 410 confidence score. If the determination 412 is that amatching product was not identified 408 and/or an acceptable confidencescore was not computed 410, then the system may return 414 a generic ador default ad or pass the ad request to other servers for fulfillment.

If the determination 412 is that a matching product was identified 408,and optionally if a suitable confidence score computed 410, a custom admay be generated 416. The ad may be generated using elements of productdata presented in a manner amenable to identified current interests of aviewer based on the viewer data. An example of a process of generating acustomized ad is described in more detail below with reference to FIG.8. The customized ad may then be returned 418, generally to the serveror other device that provided the ad request.

As an alternative to generating 416 and returning 418 the customized ad,the process 400 may return 420 a modified ad tag. For example,communication with a requesting server may be needed to determinewhether an ad may be shown. In interactions with the requesting serversuch as an ad exchange, the modified ad tag may indicate an intention tobuy the impression, which may allow for a quicker response to the serverrequest. The customized ad could then be generated and returned if theimpression is ultimately bought.

FIG. 5 is an analyzer 500, according to one embodiment, of a system forautomatically generating customized ads, such as the system 100 ofFIG. 1. As described previously, the analyzer 500 may be configured toanalyze data that may include ad request data, viewer data, website data(e.g., display website data, ad source organization website data,third-party website data), product data, and account data. To analyzethese various types of data, the analyzer 500 may include several dataspecific analyzers (e.g., modules), as shown in FIG. 5, to analyze orotherwise process the different specific types of data. For example, theanalyzer of FIG. 5 may include a request analyzer 502, a viewer analyzer504, a website analyzer 506, a product analyzer 508, an account analyzer510, and an source analyzer 512.

The request analyzer 502 may analyze request data. Analyzing requestdata may include parsing or otherwise processing request data todetermine and/or filter for request attributes. Request data mayinclude, but is not limited to, data contained in the HTTP header fields(e.g., such as a referral URL), and any data supplied with an ad request(e.g., such as ad size, ad placement, etc.). As an example, the requestanalyzer 502 may parse request data to determine attributes such asrequired ad specifications from data included with an ad request.

The viewer analyzer 504 may analyze viewer data. Analyzing viewer datamay include parsing, filtering, restructuring, or otherwise processingviewer data to determine viewer characteristics and attributes and/orput the viewer data in a format more amenable to comparison with productdata. A viewer attribute, according to one embodiment of the presentdisclosure, may include anything pertaining to a viewer that may becompared against a product attribute such that a relative proximity ofthe attributes may be measured or quantified. Analyzing viewer data mayalso include identifying features, characteristics, and/or other aspectspertinent to the viewer. Viewer data may include, but is not limited to,browsing history of the viewer, website view times, a search querygenerated by the viewer, interactions of the viewer with advertisements(including lack of interaction), an online profile generated by theviewer (e.g., such as on a social media website and/or system, or on awebsite and/or system of a content server requesting the advertisement),and purchase history of the viewer (including purchases that were notcompleted or items that have been selected to be purchase but have notcompeted the checkout process).

The analyzer 500, and particularly a viewer analyzer 504, may analyzeviewer data to generate a representation of a given viewer, and morespecifically a representation of features, characteristics, and/orattributes of the given viewer. The viewer analyzer 504 may also utilizewebsite data (e.g., the viewer data may indicates websites that theviewer may have visited and the website data may provide the content ofthose websites, which can be used in deriving features, characteristics,and/or attributes of the viewer). The representation may be a datastructure or mathematical model that may be compared to similarlystructured data structures or mathematical models. For example, in oneembodiment, the analyzer 500 may generate a viewer feature vector. Forexample, the viewer analyzer 504 may generate an n dimensional viewerfeature vector where n is a number of features (or attributes) of theviewer. In another embodiment, the analyzer may generate a plurality offeature vectors for the viewer, such that different feature vectors maybe structured for comparison with product data (e.g., product featurevectors) for different types of products.

The product analyzer 506 may analyze extracted product data. Analyzingproduct data may include parsing, filtering, restructuring, or otherwiseprocessing product data to determine product attributes and/or put theproduct data in a format more amenable to comparison with viewer data. Aproduct attribute, according to one embodiment of the presentdisclosure, may include anything pertaining to a product that may becompared against a viewer attribute such that a relative proximity ofthe attributes may be measured or quantified. Analyzing product data mayalso include identifying features, characteristics, and/or other aspectsof products. The product data may include a product description, productspecifications (e.g., size, weight, color, model, etc.), productrating(s), pricing of the product, location of the product, and productimages.

The analyzer 500, and particularly a product analyzer 506, may analyzeproduct data to generate a representation of a given product, and morespecifically a representation of features, characteristics, and/orattributes of the given product. The representation may be a datastructure or mathematical model that may be compared to similarlystructured data structures or mathematical models. For example, in oneembodiment, the analyzer 500 may generate a product feature vector. Forexample, the product analyzer 506 may generate an n dimensional productfeature vector where n is a number of features (or attributes) of agiven product. A product feature vector may be used to determine one ormore products that sufficiently align with attributes and/or currentinterest(s) of a viewer by comparing the product feature vector(s) tothe viewer feature vector. A diagrammatic representation of a viewer anda diagrammatic representation of some products is shown in FIG. 7 anddiscussed below with reference to the same.

The website analyzer 508 may analyze website data. Analyzing websitedata may include extracting, parsing, or otherwise processing datapertaining to a website to determine features, characteristics, and/orattributes of a website. Website data may include, but is not limitedto, data that may appear on a website (e.g., such as text, images,videos, etc.), the structure of that data on the website (e.g., howcontent of the website is organized) including relationships (e.g., theorder of the words), and data relating to the appearance of the website(e.g., such as color schemes, fonts, layout, etc.).

The analyzer 500, and particularly a website analyzer 506, may analyzewebsite data to generate a representation of a given website, and morespecifically a representation of features, characteristics, and/orattributes of the given website. The representation may be a datastructure or mathematical model that may be compared to similarlystructured data structures or mathematical models. For example, in oneembodiment, the analyzer 500 may generate a website feature vector. Forexample, the product analyzer 506 may generate an n dimensional websitefeature vector where n is a number of features (or attributes) of agiven website. A website feature vector may be used to generate viewerfeature vectors.

The account analyzer 510 may analyze account data. Analyzing accountdata may include extracting, parsing, or otherwise processing datapertaining to an account. Account data may include data associated withan advertising account, such as an ad source organization, and includes,but is not limited to, advertising campaign budgets, budget thresholds,spend rates, price structure (e.g., cost per click (cpc), cost perimpression (cpi)), maximum price per ad (e.g., a maximum price the adsource organization is willing to pay for an ad), campaign dates (e.g.,start and end dates), and target demographics. Furthermore, account datamay include information about the business such as a URL to the adsource organization website and/or other sources that may providepublicly accessible information generated by the ad source organization(e.g., Facebook page, Twitter feed, etc.) and/or publicly accessibleinformation approved by the ad source organization.

The ad source analyzer 512 may analyze ad source data. Analyzing adsource data may include extracting, parsing, or otherwise processingdata pertaining to an ad source organization. Ad source data mayinclude, but is not limited to, data that may be publicly accessibleinformation about the ad source organization. For example, the publiclyaccessible information may be information on a website (e.g., text,images, videos, etc.), the structure of that data on the website (e.g.,how content of the website is organized) including relationships (e.g.,the order of the words), and data relating to the appearance of thewebsite (e.g., such as color schemes, fonts, layout, etc.). The publiclyaccessible information may also be available via another source, such asan RSS feed, a social media platform, and/or third-party sources.

The multiple specialty analyzers 502, 504, 506, 508, 510, 512, receiveand analyze the various forms of data to prepare the data for use ingenerating custom ads.

FIG. 6 is a flowchart of a process 600 of identifying a matchingproduct, according to one embodiment. To identify a matching product,the process may compare analyzed viewer data to analyzed product data,optionally with consideration of a weighting, and identify a productthat is closest in proximity to the viewer (e.g., a product withfeatures, characteristics, and/or attributes that most closely alignwith features, characteristics, and/or attributes of the viewer). Theprocess may retrieve 602 analyzed viewer data (e.g., from memory, from aviewer database, or the like) and may retrieve 604 analyzed product data(e.g., from memory, from a product database, or the like). The analyzedviewer data may have been analyzed in order to parse, filter,restructure, and/or otherwise put the viewer data in a form amendable tocomparison with product data. Similarly, the analyzed product data mayhave been analyzed in order to parse, filter, restructure, and/orotherwise put the product data in a form amendable to comparison withviewer data. A weighting may be computed 606 based on the viewer data(e.g. to emphasize viewer features, characteristics, and/or attributesthat may be of more significance in making a comparison to productdata).

The analyzed product data, and especially product attributes, may becompared 608 to the analyzed viewer data, and especially the viewerattributes, to determine a relative closeness or proximity of theproduct to what the viewer might be interested in. The comparison mayidentify which one or more products of a plurality of products may becloser to, or more closely align with what a viewer may be interested inviewing. In other words, the comparison may identify which product(s)may have features, characteristics, and/or attributes that a viewer maybe interested in and for which the viewer may be receptive ofadvertising.

As described above, in one embodiment, a viewer (e.g., viewer features,characteristics, and/or attributes) may be represented by a datastructure, such as a viewer feature vector generated from viewer dataand products (e.g., product features, characteristics, and/orattributes) may each be represented by a product feature vectorgenerated from extracted product data. A weighting may be computed 606based of the analyzed viewer data. The product feature vectors may becompared 608 to the viewer feature vector to determine which productfeature vector most closely matches the viewer feature vector. Thedetermination of relative closeness of a product feature vector to aviewer feature vector may include calculating a distance. The distancemay be calculated using a distance formula, such as the L₁ norm (alsoknown as the taxicab norm) as follows:

$D = {\sum\limits_{i = 1}^{n}\; {{v_{i} - p_{i}}}}$

where {right arrow over (v)} is the viewer feature vector and {rightarrow over (p)} is the product feature vector. As another example, thedistance may be calculated using a distance formula such as the L₂ norm(also known as the Euclidean norm) as follows:

$D = \sqrt{\sum\limits_{i = 1}^{n}\; \left( {v_{i} - p_{i}} \right)^{2}}$

again, where {right arrow over (v)} is the viewer feature vector and{right arrow over (p)} is the product feature vector.

As can be appreciated, other formulas for calculating distance and/orrelative closeness may be appropriate and suitable for use inidentifying matching products for a given viewer.

The process 600 may then return 610 one or more products that match (orclosely or sufficiently align) with the viewer.

FIG. 7 provides a diagrammatic representation data structures that mayrepresent analyzed viewer data and analyzed product data, according toone embodiment. In FIG. 7, representations of feature vectors are shownto illustrate identifying matching feature vectors. A viewer featurevector 702 may be generated by analyzing viewer data. The viewer featurevector 702 may be three-dimensional to represent three features,characteristics, and/or attributes of a viewer, and thus may beillustrated as a simplistic three-dimensional vector. Similar to theexample scenario of FIGS. 3A-3C, the viewer feature vector may include acar type feature (e.g., represented along a y-axis of the representationof the viewer feature vector 702), a mileage feature (e.g., representedalong a x-axis of the representation of the viewer feature vector 702),and a color feature (e.g., represented along a z-axis of therepresentation of the viewer feature vector 702). In FIG. 7, the point704 of the viewer feature vector may be positioned on athree-dimensional grid representing the viewer feature vector 702. Forexample the point 704 may represent viewer features pertinent to anautomobile including that the viewer may have an interest in a truck,with low mileage between 5,000 and 10,000 miles, and a color white.

Similarly, the product feature vectors 710, 720, 730, for three products(product 1, product 2, and product 3) may be three-dimensional torepresent three features, characteristics, and/or attributes of theproducts (e.g., automobiles), and thus may also be illustrated as asimplistic three-dimensional vector. In order to be amenable tocomparison with the viewer feature vector 702, the product featurevectors 710, 720, 730 may include a car type feature (e.g., representedalong a y-axis of the representation of the product feature vectors 710,720, 730), a mileage feature (e.g., represented along a x-axis of therepresentation of the product feature vectors 710, 720, 730), and acolor feature (e.g., represented along a z-axis of the representation ofthe product feature vectors 710, 720, 730). In each of the productfeature vectors 710, 720, 730 of FIG. 7, a point 712, 722, 732 of theviewer feature vector may be positioned on a three-dimensional gridrepresenting the product feature vectors 710, 720, 730. For example thepoint 712 may represent product features of the first product, which maybe a white truck having 8,000 miles. As can be seen, by therepresentation the first product feature vector 710 and therepresentation of the viewer feature vector 702, the features,characteristics, and/or attributes of product 1 fairly closely alignwith the features, characteristics, and/or attributes of the viewer. Acalculation of the distance between these feature vectors could becompared to a calculation of the distance between the viewer featurevector and other product feature vectors to identify which product(s)most closely align with the viewer (e.g., which product(s) havefeatures, characteristics, and/or attributes that most closely alignwith the features, characteristics, and/or attributes of the viewer).

As can be appreciated, any number of features, characteristics, and/orattributes may be represented by a feature vector such that the featurevectors could be n-dimensional where n is the number of features,characteristics, and/or attributes represented by a feature vector.

FIG. 8 is a flowchart for a process 800 of generating a customized ad,according to one embodiment. The customized ad is generated toeffectively advertise a matching product to a given viewer. The matchingproduct may be a product, for example, as determined by the process 600of FIG. 6, as described above. The process 800 may begin by executing802 one or more assessors, which may assess the analyzed viewer data,identify one or more current interests of a viewer, and generatecustomized ad content from the analyzed product data that aligns withthe identified current interests of the viewer. Described differently,the assessors may generate custom content from extracted product datafor the product to be advertised, based on identified viewer interests.A process of an assessor is described in greater detail below withreference to FIG. 9.

The process 800 may include identifying 804 an ad canvas, which may havebeen created previously or in real time. The ad canvas may be identified804 based on information in the server request (e.g., website data), adspecifications (e.g., as specified by the ad source organization), oneor more templates (e.g., specified by the display website or specifiedby ad source organization), the identified product (including associatedproduct data), and other factors. Furthermore, the ad canvas may beidentified 802 based on the color scheme, font sizes, and layout of thedisplay website where the ad will be displayed in order to select an adcanvas with optimal features such as color and font for maximumeffectiveness.

A selection 806 custom content generated by assessors may occur toselect more relevant, pertinent, and/or interesting content for theviewer. The number of assessor executed may result in custom generatedcontent that exceeds the size of the identified ad canvas or that mayotherwise clutter a custom ad and thereby decrease effectiveness. Thecustom content generated by the assessors may be selected 806 based onsize of the ad canvas and a weighting. The weighting may be determinedbased on viewer features, characteristics, attributes, and currentinterests. A custom ad may be assembled 808 by calculating the placementof the selected custom content generated by the assessors and based onother required or optional details such as the font size of text or thesize of an image.

FIG. 9 is a flowchart for a process 900 of an assessor, according to oneembodiment. The process 900 may begin by retrieving 902 analyzed viewerdata and retrieving 904 analyzed product data for the matching productto be advertised. Various mathematical and statistical measures may becomputed 906 using the analyzed viewer data to identify currentinterests of the viewer. The computations 906 may include, but are notlimited to, standard deviation, mean, maximum and minimum values, slope,and inflection points. The computations 906 may generate statistics andidentify convergence of features and/or trends to identify currentinterests of the viewer. Some of these calculations may have beenperformed previously, in which case the result values may be retrievedinstead of being recomputed. An example of convergence may be if theviewer has loaded multiple product images that have the same color. Anexample of a trend may be if the viewer has loaded multiple productswhere the price of the product is increasing. The process may thencompare 908 the feature vectors associated with the viewer with theproduct feature vector. This comparison may include comparing individualfeatures such as the price and/or may include comparing several featuressuch as brand names where each brand is represented as one feature. Theviewer features which exhibit convergence or trends may be weighted moreheavily in the comparison. Similarly, features that do not converge orexhibit trends may be weighted less. The process may then generate 910custom content and generate 912 a weighting based the computing 906 andcomparing 908. Because the assessors have knowledge of (e.g., considerdata of) the product(s) an ad source organization offers as well asknowledge of (e.g., consider data of) the interest(s) of a viewer, thecustom content can be generated to contain information specific to theviewer that may be designed to highlight features, characteristics,and/or attributes of the product that may be of greater interest to theviewer or may use interests to convert or generate interest in theadvertised product. The media and weight may then be returned 914 foruse in custom ad generation, such as in the process 800 of FIG. 8, asdescribed above.

As an example of functionality of an assessor, the matching product thatmay be identified may be slightly outside of a price range in which aviewer is most interested. The matching product may be a truck that is$24,990, and the viewer has been primarily browsing trucks that areunder $20,000. The assessors may have determined that price is a currentinterest of the viewer or otherwise significant in the websites and/orproduct listings that the viewer may be viewing. With understanding ofthe current viewer interest, and that the product price is not as wellmatched as may be desired, the assessor process may generate customcontent indicating “On sale” to appeal to the current interest of theviewer in price and attract the customer to view the customadvertisement and click through to learn more about the product.

FIG. 10 is an interface 1000 for an ad source organization to managegeneration of customized ads for products, according to one embodiment.The interface 1000 may enable configuration of parameters, setting ofpreferences, and the like to manage the content that is included in thecustomized advertisements and which products are advertised. Theinterface 1000 may include several individual interfaces (or pages),which may include an account overview page 1002 (referred to as“Dashboard” in FIG. 10), an advertisement settings page 1004 (referredto as “Ad Settings” in FIG. 10), a content focus page 1006 (referred toas “Focus” in FIG. 10), an advertisement preview page 1008 (referred toas “Ad Preview” in FIG. 10), and a promotions page 1010 (referred to as“Promotions” in FIG. 10). The account overview page 1002 may includeadvertisement account and campaign information such as impressionsserved, campaign costs, and other information. The advertisementsettings page 1004 may include advertisement settings such as campaignduration, spending limits, website domains where ads should or shouldnot be shown, etc. The content focus page 1006 may include features thatallow the ad source organization to control criteria specifying whatproducts are advertised. These criteria may be general in nature such aswhether the condition of the product is new or used and/or they may bemore specific such as the make of an automobile or the size of screen ona laptop computer. Other examples of criteria may include, but are notlimited to color, price, days in inventory, material, geometric size,etc. Additionally, the focus page may include a confidence setting orfilter. This may allow the ad source organization to only show ads toviewers that have the associated level of probability of engaging withthe ad. The advertisement preview page and promotions page are discussedin detail in FIG. 9 and FIG. 10 respectively.

The interface 1000 of FIG. 10 is shown presenting a content focus page1006. The content focus page provides one or more input controls toenable an ad source organization to configure settings (or criteria) tocontrol the content that is included in the customized advertisements,presentation of the content, and/or which products are advertised. Inthe illustrated embodiment, the input controls may include, but are notlimited to a “Car Type” input control 1012, a “Car Make” input control1014, a “Body Style” input control 1016, a “Dealership Location” inputcontrol 1018, a “Days on the Lot” input control 1020, a “Price Range”input control 1022, and a “Confidence Level” input control 1024.

The “Car Type” input control 1012 may allow the ad source organizationto control whether “New” and/or “Used” automobiles are advertised.Furthermore, the ad source organization may select “Other” to onlyadvertise specific automobiles.

The “Car Make” input control 1014 may allow the ad source organizationto control which automobile manufacturers are advertised. The ad sourceorganization may select a single manufacture, multiple manufacturers, orall the automobile manufactures to designate that products in theirinventory that were manufacture by the indicated manufacturers may beincluded in customized advertisements. Examples of automobilemanufacture may include, but are not limited to, Ford, Honda, andToyota.

The “Body Style” input control 1016 may allow the ad source organizationto control which automobile body styles are advertised. The ad sourceorganization may select a single body style, multiple body styles, orall the body styles in their inventory. Examples of automobile bodystyles may include, but are not limited to, compact, crossover, andtruck.

The “Dealership Location” input control 1018 may allow the ad sourceorganization to control whether products from a given location areadvertised. The ad source organization may select a single location,multiple locations, or all the dealership locations.

The “Days on the Lot” input control 1020 may allow the ad sourceorganization to control which automobiles are advertised based on thenumber of days a given automobile has been on the “Dealership Lot”.Since the present disclosure may automatically extract productinformation and may check for updates, the system can gather knowledgeof what products are in inventory and how long a given product has beenin inventory. Furthermore, it may be desirous for the ad sourceorganization to focus advertising efforts on products that have been ininventory for a longer amount of time because, for example, theseproducts may use financial resources that cannot be leveraged for otherpurposes until the product is sold.

The “Price Range” input control 1022 may allow the ad sourceorganization to control the price range of automobiles that areadvertised. This may be desirous for the ad source organization to focusadvertising resources on higher priced items where more profit may begenerated.

The “Confidence Level” input control 1024 may allow the ad sourceorganization to control which viewers may be shown advertisements basedon a confidence score (or measure). As discussed above, the confidencemeasure may determine the likelihood of success and may be determinedusing several factors including how well the product meets theinterest(s) of the viewer. For example, if a product has the samefeatures that a viewer is interested in, the confidence measure may behigh. Therefore, if the “Confidence Level” input control 1024 is settowards the high end of the confidence scale, customized ads for a givenproduct may be generated only for viewers that already show interest inthe given product and are the most likely to lead to the desired action,such as a sale. An example may be an ad source organization that sellsFord® trucks setting a high confidence level on the “Confidence Level”input control 1024 to ensure that customized ads for its products (Fordtrucks) are generated for viewers who are likely looking for a Fordtruck. A high confidence level setting may limit the broadness or reachof an advertising campaign. For example, ads may not be shown to viewerslooking for a Dodge® truck.

If the “Confidence Level” input control 1024 is set at a moderate level,more towards the middle of the confidence scale, ads may be shown toviewers that show at least some interest in aspects of the product. Amore moderate (toward the middle) confidence level setting may allow adsto be shown to viewers who initially may not have led to the desiredaction, but may be more easily converted into completing the desiredaction. For example, ads may be shown to viewers who are looking forDodge trucks when the ad source organization may sell Ford Trucks.

If the “Confidence Level” input control 1024 is set toward the lowerregion of the confidence scale, ads may be shown to viewers that mayhave less interest in a given product. For example, customized ads ofFord truck may be generated to be shown to a viewer who may be primarilyinterested in a compact car or some other product.

Referring again to FIG. 10, the input controls given on the contentfocus page 1006 of the interface 1000 may be used in combination toallow the ad source organization to advertise any product or group ofproducts. For example, an ad source organization may want to onlyadvertise New Trucks that have been on the lot of Location A for morethan 20 days. The input controls of “Car Type”, “Body Style”,“Dealership Location”, and “Days on the Lot” may be used to obtain thisgroup of automobiles. As another example, an ad source organization maywant to only advertise BMW Vehicles (New and Used) that have a priceover $25,000 to viewers that are interested in higher price BMWVehicles. The input controls of “Car Type”, “Car Make”, “Price Range”,and “Confidence Level” may be used to obtain this group of automobiles.

FIG. 11 is an advertisement preview interface 1100, according to oneembodiment. The preview interface 1100, may be preview page 1008 of theinterface 1000 of FIG. 10 described above. The preview interface 1100may provide functionality to enable an ad source organization to previewcustomized advertisements and how they may appear to a viewer that ispresented the customized ads via the Internet. Since the presentdisclosure provides systems and methods for automatically generatingcustomized ads based on a viewer, which may be done in real time, the adsource organization cannot preview them in the same manner they wouldpreview static ads. The advertisement preview page 1100 may allow the adsource organization to preview potentially static components, such as anad background 1102. The advertisement preview page may provide examplesof ads 1104 a, 1104 b, by including superimposed potential permutationsof dynamic features such as text and images in order to provide the adsource organization with the ability to preview how customized ads maylook, before customized ads are generated and presented to a viewer. Forexample, in FIG. 11, the preview interface 1100 presents two examples1104 a, 1104 b of ads for cars. The advertisement preview page may allowan ad source organization to add 1106 new templates, edit existingtemplates such as by adding components or remove existing components,and remove 1108 existing templates.

FIG. 12 is a promotions interface 1200 for an ad source organization toadd promotions or other information to the system and associate it witha given product. Since the present disclosure provides systems andmethods for automatically generating customized ads, which may includeautomatically extracting information for the ad source organizationwebsite, the promotions page 1200 allows the ad source organization toadd additional information that may not be included in other publiclyavailable electronic data generated by the ad source organization, suchas sale offers and discounts. The promotions page 1200 may includepromotion input controls 1202 to allow an ad source organization toinput the promotion (referred to as “Special Promotion Offer” in FIG.12). The promotion page 1200 may also include additional input controlsto associate a promotion with a product. An example may include if thead source organization is an automotive dealer, there may be inputcontrols such as the car year 1204, car make 1206, and car model 1208.The promotions page may provide a promotion preview 1210 to show anexample of the promotional offer superimposed on an ad background. Thepromotions page 1200 may also include formatting options (not shown inFIG. 12) that may designate a color of text, a relative location (i.e.top of the ad, bottom of the ad, etc.), etc. of the promotion contentwhen included in an automatically generated customized ad.

This disclosure has been made with reference to various exemplaryembodiments including the best mode. However, those skilled in the artwill recognize that changes and modifications may be made to theexemplary embodiments without departing from the scope of the presentdisclosure. For example, various operational steps, as well ascomponents for carrying out operational steps, may be implemented inalternate ways depending upon the particular application or inconsideration of any number of cost functions associated with theoperation of the system, e.g., one or more of the steps may be deleted,modified, or combined with other steps.

Additionally, as will be appreciated by one of ordinary skill in theart, principles of the present disclosure may be reflected in a computerprogram product on a tangible computer-readable storage medium havingcomputer-readable program code means embodied in the storage medium. Anysuitable computer-readable storage medium may be utilized, includingmagnetic storage devices (hard disks, floppy disks, and the like),optical storage devices (CD-ROMs, DVDs, Blu-Ray discs, and the like),flash memory, and/or the like. These computer program instructions maybe loaded onto a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions that execute on the computer or other programmabledata processing apparatus create means for implementing the functionsspecified. These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function specified. The computer programinstructions may also be loaded onto a computer or other programmabledata processing apparatus to cause a series of operational steps to beperformed on the computer or other programmable apparatus to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide steps forimplementing the functions specified.

Suitable software to assist in implementing the invention is readilyprovided by those of skill in the pertinent art(s) using the teachingspresented here and programming languages and tools, such as Java,Pascal, C++, C, database languages, APIs, SDKs, assembly, firmware,microcode, and/or other languages and tools.

Embodiments as disclosed herein may be computer-implemented in whole orin part on a digital computer. The digital computer includes a processorperforming the required computations. The computer further includes amemory in electronic communication with the processor to store acomputer operating system. The computer operating systems may include,but are not limited to, MS-DOS, Windows, Linux, Unix, AIX, CLIX, QNX,OS/2, and Apple. Alternatively, it is expected that future embodimentswill be adapted to execute on other future operating systems.

In some cases, well-known features, structures or operations are notshown or described in detail. Furthermore, the described features,structures, or operations may be combined in any suitable manner in oneor more embodiments. It will also be readily understood that thecomponents of the embodiments as generally described and illustrated inthe figures herein could be arranged and designed in a wide variety ofdifferent configurations.

While the principles of this disclosure have been shown in variousembodiments, many modifications of structure, arrangements, proportions,the elements, materials and components, used in practice, which areparticularly adapted for a specific environment and operatingrequirements, may be used without departing from the principles andscope of this disclosure. These and other changes or modifications areintended to be included within the scope of the present disclosure.

The foregoing specification has been described with reference to variousembodiments. However, one of ordinary skill in the art appreciates thatvarious modifications and changes can be made without departing from thescope of the present disclosure. Accordingly, this disclosure is to beregarded in an illustrative rather than a restrictive sense, and allsuch modifications are intended to be included within the scope thereof.Likewise, benefits, other advantages, and solutions to problems havebeen described above with regard to various embodiments. However,benefits, advantages, solutions to problems, and any element(s) that maycause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeature or element. As used herein, the terms “comprises,” “comprising,”or any other variation thereof, are intended to cover a non-exclusiveinclusion, such that a process, method, article, or apparatus thatcomprises a list of elements does not include only those elements butmay include other elements not expressly listed or inherent to suchprocess, method, article, or apparatus. Also, as used herein, the terms“coupled,” “coupling,” or any other variation thereof, are intended tocover a physical connection, an electrical connection, a magneticconnection, an optical connection, a communicative connection, afunctional connection, and/or any other connection.

As will be appreciated those having skill in the art, many changes maybe made to the details of the above-described embodiments withoutdeparting from the underlying principles of the disclosure. The scope ofthe present invention should, therefore, be determined only by thefollowing claims.

What is claimed is:
 1. A system for automatically generating customizedadvertisements, the system comprising: one or more processors; a systemmemory in electrical communication with the one or more processor tostore product data for a product offered by an ad source organization,the product data including product features; a network interface inelectrical communication with the one or more processors toelectronically couple the system to a network that is in electroniccommunication with a request computing device that presents a displaywebsite that requests advertisements, wherein the display website isserved by a server that is distinct from the ad source organization; ananalyzer to derive viewer data from interactions of a viewer with one ormore advertisement display websites, wherein the viewer data isprocessed to determine one or more viewer features of the viewer,including an inferred viewer feature, wherein the viewer is to whom acustomized advertisement generated by the system is to be presented; amatch engine to, upon receipt of an advertisement request, compareproduct features to the one or more viewer features to determine thatthe product aligns with the one or more viewer features; a custom adgenerator to generate a customized advertisement of the productspecifically for the viewer based on the product aligning with one ormore viewer features, the custom ad generator to determine to at leastone of: include in the customized advertisement a portion of the productdata that aligns with the inferred viewer feature, and exclude from thecustomized advertisement a portion of the product data that does notalign with the inferred viewer feature; and a communication interface tocommunicate the customized advertisement of the product to the requestcomputing device that requests the advertisement for presentation on thedisplayable website.
 2. The system of claim 1, wherein the custom adgenerator determines to include in the customized advertisement aportion of the product data that aligns with one or more viewer featuresother than the inferred viewer feature.
 3. The system of claim 1,wherein the analyzer determines multiple inferred viewer features frominteractions of the viewer with the one or more advertisement displaywebsites, and the custom ad generator to determine to both: include inthe customized advertisement a portion of the product data that alignswith a first inferred viewer feature of the multiple inferred viewerfeatures, and exclude from the customized advertisement a portion of theproduct data that does not align with a second inferred viewer featureof the multiple inferred viewer features.
 4. The system of claim 1,further comprising an extractor to, by the one or more processors,automatically extract, from a source of publicly accessible electronicinformation generated by an ad source organization, the product data forthe product and store the extracted product data in the system memory,wherein the display website is served by a server that is distinct fromthe source of publicly accessible electronic information.
 5. The systemof claim 4, wherein the extractor includes a product updater to identifyand extract changed product data generated by the ad sourceorganization, the custom ad generator to generate a subsequentcustomized advertisement including the changed product data.
 6. Thesystem of claim 5, wherein the changed product data comprises an updateto pricing for the product.
 7. The system of claim 5, wherein thechanged product data comprises product information for a substituteproduct offered in place of the product by the ad source organization.8. A computer-implemented method to automatically generate customizedadvertisements, the method comprising: receiving at a computing device arequest for an advertisement; receiving at the computing device viewerdata of a viewer to whom a customized advertisement is to be presented,the viewer data from interactions of the viewer with one or moreadvertisement display websites; determining one or more viewer featuresof the viewer from the viewer data, including one or more inferredviewer features receiving at the computing product data of a productoffered by an ad source organization, the product data indicating one ormore attributes of the product; comparing the product attributes to theone or more viewer features to determine whether one or more productattributes align with one or more viewer features; if the one or moreattributes of the product sufficiently align with the one or moreattribute of the viewer, generating a customized advertisementspecifically for the viewer using at least a portion of the extractedproduct data that at least one of: includes a portion of the productdata that aligns with the inferred viewer feature, and excludes aportion of the product data that does not align with the inferred viewerfeature; and returning the customized advertisement for the product to adevice that provided the request for an advertisement.